package Code;

import java.util.ArrayList;
import java.util.List;

public class Code234 {
    static class ListNode {
        int val;
        ListNode next;
        ListNode(int val) {
            this.val = val;
        }
    }


        static boolean isPalindrome(ListNode head) {
            List<Integer> list = new ArrayList<>();
            // 遍历链表，将元素存入数组
            ListNode p = head;
            while (p != null) {
                list.add(p.val);
                p = p.next;

            }
            int l = 0, r = list.size() - 1;
            while (l < r) {
                if (!list.get(l).equals(list.get(r))) {
                    return false;
                }
                l++;
                r--;
            }
            return true;
        }


        public static void main(String[] args) {
            // 构建示例链表 1 -> 2 -> 2 -> 1
            ListNode head = new ListNode(1);
            head.next = new ListNode(2);
            head.next.next = new ListNode(2);
            head.next.next.next = new ListNode(1);


            boolean result = isPalindrome(head);
            System.out.println("该链表是否为回文链表: " + result);
        }

}
